SAS Real-Time Decision Manager uses the SAS® Customer Intelligence Reporting web service (also referred to as "ccs") to write contact history records to the Customer Intelligence Common Data Model. The ccs might fail to update contact history. When this problem occurs, the ccs writes the following error to the Customer Intelligence Reporting log:
ERROR 2011-09-26 14:16:02,673 CHUpdateImpl Exception thrown from doCHTricklingInsertForOfferArbitration : Caused by Could not send the message Caused by Invalid object type. DEBUG 2011-09-26 14:16:02,675 CHUpdateImpl com.sas.analytics.crm.ccs.common.error.CICommonException: Could not send the message at com.sas.analytics.crm.ccs.common.jms.MessagingUser.sendAMessageWithGivenMessageS electorAttributes(MessagingUser.java:360) at com.sas.analytics.crm.ccs.webservices.ch.CHUpdateImpl.sendMessage(CHUpdateImpl.j ava:311) at com.sas.analytics.crm.ccs.webservices.ch.CHUpdateImpl.doCHTricklingInsertForOffe rArbitration(CHUpdateImpl.java:553) at com.sas.analytics.crm.ccs.webservices.ch.CHUpdateImpl.doCHTricklingInsertForOffe rArbitrationWithLongDate(CHUpdateImpl.java:456) at com.sas.analytics.crm.ccs.webservices.ch.CHUpdateImpl.doCHTricklingInsertForOffe rArbitration(CHUpdateImpl.java:477) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ...
Only campaigns that are executed on a JBoss environment and that contain no treatments experience the problem described above.
In order to avoid this problem, add the following configuration option to your JBoss wrapper.conf start-up script. The option enables processing of contact history / presented treatment / response history updates that contain no treatment information.
Further notes:
JBoss documentation also contains recommendations about configuring JMS (Java Messaging Services) for production environments. Failure to follow these recommendations can also result in the error above.
The following information is contained in the deployment instructions for SAS Real-Time Decision Manager 6.1, but is also pertinent to versions 5.41 and 5.41_M1:
Notes --- JBoss messaging does not support 'null' messages by default When Red Hat JBoss is used as the application server, the default installation does not allow empty messages to be passed on to its JMS message queues. This can cause problems for contact history and response history updates that originate from SAS Real Time Decision Manager or SAS Digital Marketing since they are allowed to send empty message payloads. To resolve this problem it is necessary to set a server property in JBoss that allows 'null' messages to be passed. This server property is documented at the following Red Hat location: https://docs.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform /4.3/html/Messaging_User_Guide/properties.mapmessagesupportnullobject.html To set this property it is necessary to add the following to the JBoss start-up script to (wrapper.conf) under sasserver6: -DmapMessage.support.null.object=true It will be necessary to shut down the application server prior to making this change. The setting should become active once the server is restarted. --- JBoss Hypersonic Database is not suitable for production workloads By default, Red Hat JBoss uses its in-memory 'Hypersonic Database' for persisting messages that are sent across its JMS message queue. Red Hat Corporation gives warnings against using this default implementation for production work-loads: http://docs.jboss.org/jbossmessaging/docs/guide-1.0.1.SP5/ html_single/index.html#startingtheservice The warning message: "DataSource connection transaction isolation should be READ_COMMITTED, but it is currently NONE" is there to remind you that by default JBoss ships with Hypersonic, an in-memory Java-based database engine, which is appropriate for demo purposes, but not for heavy load production environments. The Critique of Hypersonic wiki page outlines some of the well-known issues occurring when using this database with this warning: Before using Messaging in production, you must configure the Messaging instance to use an enterprise-class database backend such as MySQL or Oracle, otherwise you risk losing your data. See Section 6.2.1, "Changing the Database" for details about replacing Hypersonic. Therefore SAS does not support this default implementation for production systems and it is strongly advised that JBoss messaging be configured to use an enterprise-class database backend.
Product Family | Product | System | Product Release | SAS Release | ||
Reported | Fixed* | Reported | Fixed* | |||
SAS System | SAS Real-Time Decision Manager | Microsoft® Windows® for x64 | 5.4_M1 | 6.1 | 9.2 TS2M0 | |
64-bit Enabled AIX | 5.4_M1 | 6.1 | 9.2 TS2M0 | |||
64-bit Enabled Solaris | 5.4_M1 | 6.1 | 9.2 TS2M0 | |||
HP-UX IPF | 5.4_M1 | 6.1 | 9.2 TS2M0 | |||
Linux for x64 | 5.4_M1 | 6.1 | 9.2 TS2M0 | |||
Solaris for x64 | 5.4_M1 | 6.1 | 9.2 TS2M0 |
Type: | Problem Note |
Priority: | high |
Date Modified: | 2013-04-26 11:11:00 |
Date Created: | 2012-09-25 10:13:49 |